
const recognitionHttpService = require('../../utils/beans');
Page({
  data: {
    imagePath: '', // 存储图片路径
    resultList: [],     // 存储病害识别结果数组
    noResult: false    // 控制是否显示“未识别”提示
  },

  // 选择图片或拍照
  chooseImage() {
    const that = this;
    wx.chooseMedia({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'], // 可以从相册选择或直接拍照
      success(res) {
        // tempFilePath可以作为img标签的src属性显示图片
        console.log(res)
        that.setData({
          imagePath: res.tempFiles[0].tempFilePath
        });
      }
    })
  },

  // 上传图片到后端
  uploadImage() {
    const that = this;

    if (!that.data.imagePath) {
      wx.showToast({
        title: '请选择图片',
        icon: 'none'
      });
      return;
    }

    // 显示加载提示
    wx.showLoading({
      title: '识别中...',
      mask: true
    });

    // 获取 token（如果后端需要认证）
    const token = wx.getStorageSync('token');

    // 构造完整的请求 URL（包含基础路径）
    const uploadUrl = 'http://localhost:8001/recognitionImage/';

    // 如果有 token，可以添加在 URL 查询参数中（或由后端支持 header）
    let urlWithToken = uploadUrl;

    // 上传图片
    wx.uploadFile({
      url: urlWithToken,
      filePath: that.data.imagePath,
      name: 'file', // 后端接收字段名
      success(res) {
        try {
          const data = JSON.parse(res.data);
          // 判断是否成功识别
          console.log(data)
          if (data.code === 200) {
            const processedData = data.rec_result.map(item => ({
              ...item,
              synonymsPercent: (parseFloat(item.Synonyms) * 100).toFixed(2)
            }));     
            console.log(processedData)
            that.setData({
              resultList:processedData,
              noResult : false
            });
          } else {
            that.setData({
              noResult : true
            });
            wx.showToast({ title: '未识别到内容' });
          }
        } catch (e) {
          wx.showToast({ title: '解析失败', icon: 'none' });
          console.error('JSON 解析失败:', e);
        }
      },
      fail(err) {
        console.error('上传失败:', err);
        wx.showToast({ title: '上传出错，请重试', icon: 'none' });
      },
      complete() {
        wx.hideLoading(); // 不管成功与否都隐藏 loading
      }
    });
  }
});